目前有3台机器,我们设置一台ndb_mgm,两台ndbd,两台mysqld
角色 | 机器 |
---|---|
ndb_mgm | 10.160.22.157 |
ndbd | 10.160.22.158 |
10.160.22.159 | |
mysqld | 10.160.22.157 |
10.160.22.158 |
-
下载MySQL cluster安装包
https://downloads.mysql.com/archives/cluster/ -
解压安装包
tar -zxvf mysql-cluster-8.0.21-el7-x86_64.tar.gz -
复制文件
mkdir /usr/local/mysql
cp -R mysql-cluster-8.0.21-el7-x86_64/* /usr/local/mysql/ -
创建配置管理节点
4.1 将bin目录中的ndb_mgm文件全部复制到/usr/local/bin/目录中
cp /usr/local/mysql/bin/ndb_mgm /usr/local/bin/
ndb_mgm,ndb客户端命令
ndb_mgmd,ndb管理节点启动命令
ndb_mgm是ndb_mgmd(MySQL Cluster Server)的客户端管理工具,通过它可以方便的检查Cluster的状态、启动备份、关闭Cluster等功能。
4.2 修改管理节点配置文件
4.2.1 创建数据库集群配置文件的目录
mkdir /var/lib/mysql-cluster
4.2.2 编辑配置文件
vim /var/lib/mysql-cluster/config.ini
文件内如:
1 | [ndbd default] |
[NDBD DEFAULT]:表示每个数据节点的默认配置,在每个节点的[NDBD]中不用再写这些选项,只能有一个。
NoOfReplicas:副本数量,数据节点数必须是副本数的整数倍。
[NDB_MGMD]:表示管理节点的配置,只有一个,默认的对其他节点的端口是1186,故服务器需要开放1186端口。
[NDBD]:表示每个数据节点的配置,可以有多个,分别写上不同数据节点的IP地址。
[MYSQLD]:表示SQL节点的配置,可以有多个,分别写上不同SQL节点的IP地址
4.3 启动管理节点
-
有新增节点或首次启动
1
ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
-
无新增节点启动
1
ndb_mgmd -f /var/lib/mysql-cluster/config.ini
4.4 查看管理节点运行状态
-
进入控制台
1
ndb_mgm
-
查看状态
1
2
3
4
5
6
7
8
9
10
11
12
13
14* ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
[ndbd(NDB)] 2 node(s)
id=2 (not connected, accepting connect from 10.160.22.158)
id=3 (not connected, accepting connect from 10.160.22.159)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @10.160.22.157 (mysql-8.0.21 ndb-8.0.21)
[mysqld(API)] 2 node(s)
id=4 (not connected, accepting connect from 10.160.22.157)
id=5 (not connected, accepting connect from 10.160.22.158)
- 创建数据节点
5.1 配置10.160.22.159
因为该节点为单纯的data节点,所以先配置该节点
5.1.1 配置/etc/my.cnf
1 | [mysqld] |
5.1.2 新增用户并修改权限
groupadd mysql
useradd mysql -g mysql
修改目录
cd /usr/local/mysql
mkdir data
chown -R root .
chown -R mysql data
chgrp -R mysql .
5.1.3 安装数据库
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
用户为mysql的名称需要跟配置文件my.cnf中的user=mysql相同
–basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ 需要加上
启动成功后最后一行会输出数据库密码:root@localhost: >Ba4<oa!u7fD*
5.1.2 设置开启自启动
1 | cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld |
5.1.3 启动data节点
service mysqld start
启动的过程中可能会遇到一些错误,比如找不到/tmp/mysql.sock
这里建立一个软连接即可: ln -s /usr/local/mysql/data/mysql.sock /tmp/mysql.sock
建立好之后再启动
5.1.4 修改数据库密码
-
启动之后需要修改数据库密码,否则会无法使用,初始密码就是5.1.3步骤中的密码
/usr/local/mysql/bin/mysql -uroot -p -
修改密码:
alter user ‘root’@‘localhost’ identified by ‘ojbKpqiOhsg8/i’; -
退出重新用新密码登录
/usr/local/mysql/bin/mysql -uroot -p
5.1.5 启动data节点
/usr/local/mysql/bin/ndbd --initial
首次启动加上--initial
,非首次启动不需要加,不然会丢失之前的数据
5.1.6 启动之后到管理节点查看cluster状态
ndb_mgm> show
1 | Cluster Configuration |
10.160.22.159状态已经连接上了
5.2 配置10.160.22.158
因为该节点为data和sql节点,所以该节点的配置需要在158的基础上增加sql的配置,主要修改/etc/my.cnf
5.2.1 修改/etc/my.cnf文件
[mysqld]
设置ndbcluster
1 | ndbcluster |
其他方式与10.160.22.159的配置相同
最终需要将root密码修改为与159相同,所有节点的密码都应相同
5.2.3 启动之后到管理节点查看cluster状态
ndb_mgm> show
1 | Cluster Configuration |
可以看到data和sql节点都已经连接OK了
- 创建sql节点
6.1 10.160.22.159在上面已经完成了,不在配置
6.2 配置10.160.22.157
6.2.1 修改/etc/my.cnf文件
1 | [mysqld] |
6.2.2 启动sql节点
service mysqld start
安装过程中出现的问题:
- 报错找不到libcrypto.so.1.1
ln -s /usr/local/mysql/lib/private/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
ln -s /usr/local/mysql/lib/private/libssl.so.1.1 /usr/lib64/libssl.so.1.1